package edu.ynu.se.xiecheng.achitectureclass.dao;

import edu.ynu.se.xiecheng.achitectureclass.entity.Device;
import edu.ynu.se.xiecheng.achitectureclass.entity.SoilData;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;
import java.util.Optional;

/**
 * 土壤数据访问接口
 * 提供对土壤传感器数据的数据库访问操作
 */
@Repository
public interface SoilDataRepository extends JpaRepository<SoilData, Long> {
    /**
     * 根据设备查询数据，按创建时间倒序排列
     */
    List<SoilData> findByDeviceOrderByCreateTimeDesc(Device device);

    /**
     * 根据设备和时间范围查询数据，按创建时间升序排列
     */
    List<SoilData> findByDeviceAndCreateTimeBetweenOrderByCreateTimeAsc(Device device, Date startTime, Date endTime);

    /**
     * 查询设备的最新一条数据
     */
    Optional<SoilData> findFirstByDeviceOrderByCreateTimeDesc(Device device);
}